package com.paris10.model;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonTypeName;

@JsonTypeName("Dossier")
@JsonIgnoreProperties({ "listeSourcesDossier" })
public class Dossier extends AbstractSource {

	private List<AbstractSource> listeSourcesDossier;
	
	public Dossier(){
		listeSourcesDossier = new ArrayList<AbstractSource>();
	}
	
	/**
	 * Constructeur.
	 * @param titre titre du dossier
	 * @param chemin chemin du dossier
	 */
	public Dossier(String titre, String chemin){
		listeSourcesDossier = new ArrayList<AbstractSource>();
		this.titre=titre;
		this.chemin=chemin;
		this.date= Dates.date();
	}
	
	@Override
	public AbstractSource createSource(String titre, String path) {
		// TODO Auto-generated method stub
		return new Dossier(titre, path);
	}
	

	public List<AbstractSource> getListeSourcesDossier() {
		return listeSourcesDossier;
	}

	public void setListeSourcesDossier(List<AbstractSource> listeSourcesDossier) {
		this.listeSourcesDossier = listeSourcesDossier;
	}

	public void addListe(AbstractSource source){
		listeSourcesDossier.add(source);
	}
	
	public String toString(){
		StringBuilder string = new StringBuilder();
		string.append("==> Dossier \nTitre : ").append(this.titre).append("\nChemin : ").append(this.chemin).append("\nDate d'ajout : ").append(this.date).append("\n\n");
		for(AbstractSource source : listeSourcesDossier){
			string.append("Source du dossier ").append(this.titre).append("\n").append(source);
		}
		
		return string.toString();
	}

	@Override
	public List<Article> rechercherMotsCles(String[] motsCles) {
		List<Article> listeArticle = new ArrayList<Article>();
		for(AbstractSource source : this.listeSourcesDossier){
			listeArticle.addAll(source.rechercherMotsCles(motsCles));
		}
		return listeArticle;
	}


}
